#include "limitqueue.h"

LimitQueue::LimitQueue(int queueSize)
{
    limitSize=queueSize;
    currentSize=0;
    head=0;
    tail=0;
}

void LimitQueue::addElement (char *data,int len)
{
    LimitElement *tempElement=new LimitElement;
    tempElement->data=data;
    tempElement->len=len;
    tempElement->last=0;

    if(head==0)
    {
        head=tempElement;
        tail=tempElement;
    }
    else
    {
        if(currentSize<limitSize)
        {

        }
        else
        {
            outElement();
        }
        head->last=tempElement;
        head=tempElement;
    }
    currentSize++;
}

void LimitQueue::outElement ()
{
    if(tail!=0)
    {
        LimitElement *temp=tail;
        tail=temp->last;
        delete[] temp->data;
        delete temp;
        currentSize--;
    }
}
